<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org">
<head>
    <th:block th:include="include :: header('定时任务列表')" />
</head>
<body class="gray-bg">
<div class="container-div">
    <div class="row">
        <div class="col-sm-12 search-collapse">
            <form id="job-form">
                <div class="select-list">
                    <ul>
                        <li>
                            任务名称：<input type="text" name="job_name"/>
                        </li>
                        <li>
                            任务分组：
                        </li>
                        <li>
                            任务状态：
                        </li>
                        <li>
                            <a class="btn btn-primary btn-rounded btn-sm" id="searchButton"><i class="fa fa-search"></i>&nbsp;搜索</a>
                            <a class="btn btn-warning btn-rounded btn-sm" id="resetButton"><i class="fa fa-refresh"></i>&nbsp;重置</a>
                        </li>
                    </ul>
                </div>
            </form>
        </div>

        <div class="btn-group-sm" id="toolbar" role="group">
            <a class="btn btn-success" onclick="add()" data-id="0" data-role="monitor:job:add">
                <i class="fa fa-plus"></i> 新增
            </a>
            <a class="btn btn-primary single disabled" onclick="edit(this)" data-id="0" data-role="monitor:job:edit">
                <i class="fa fa-edit"></i> 修改
            </a>
            <a class="btn btn-danger multiple disabled" onclick="removeAll(this)" data-id="0" data-role="monitor:job:remove">
                <i class="fa fa-remove"></i> 删除
            </a>
            <a class="btn btn-danger single disabled" onclick="pauseJob(this);" data-id="0" data-role="monitor:job:pause">
                <i class="fa fa-power-off"></i> 停止
            </a>
            <a class="btn btn-success single disabled" onclick="resumeJob(this);" data-id="0" data-role="monitor:job:resume">
                <i class="fa fa-check"></i> 启动
            </a>
            <a class="btn btn-primary single disabled" onclick="runJob(this);" data-id="0" data-role="monitor:job:excute">
                <i class="fa fa-bolt"></i> 执行
            </a>
            <a class="btn btn-success single disabled" onclick="jobLog(this);" data-id="0" data-role="monitor:job:log">
                <i class="fa fa-list"></i> 执行日志
            </a>
        </div>
        <div class="col-sm-12 select-table table-striped">
            <table id="dataTable"></table>
        </div>
    </div>
</div>
<th:block th:include="include :: footer" />
<script type="text/javascript" th:inline="javascript">
    let $table;
    $(function() {
        loadData();
    });


    function loadData(){
        let options = {
            url: "/monitor/job/getPageList",
            sortName: "create_time",
            sortOrder: "desc",
            modalName: "任务",
            pageNumber: 1,                      // 初始化加载第一页，默认第一页,并记录
            pageSize: 10,                       // 每页的记录行数（*）
            pageList: "10, 25, 50, 100",        // 可供选择的每页的行数（*）
            queryParams: function (params) {
                let p = {
                    pageNumber: params.pageNumber,
                    pageSize: params.pageSize
                }
                return p;
            },
            columns: [
                {field: 'selectItem', radio: true},
                {field: 'jobId',title: '任务编号',align: 'center'},
                {field: 'jobName',title: '任务名称'},
                {field: 'jobGroup',title: '任务分组', align: 'center'},
                {field: 'cronExpression',title: '执行表达式'},
                {title: '任务状态',align: 'center',formatter: function (value, row, index) {
                        return statusTools(row);
                    }
                },
                {field: 'createTime',title: '创建时间',align: 'center',sortable: true}
              ]
        };
        $table=$('#dataTable').easyTable(options);
    }

    /* 调度任务状态显示 */
    function statusTools(row) {
        if (row.jobStatus == 1) {
            return '<span class="label label-primary">运行中</span>';
        } else {
            return '<span class="label label-danger">已停止</span>';
        }
    }

    //添加一个任务
    function add(){
        jutils.dialogAuto("添加任务",'/monitor/job/form',{jobId:0},function(){
            $table.easyTable('search');
        });
    }
    //修改任务
    function edit(obj){
        let rows=$table.easyTable('selected');
        if(rows.length==0){
            jutils.warn("请选择数据行");
            return;
        }
        let jobId=rows[0].jobId;
        jutils.dialogAuto("添加任务",'/monitor/job/form',{jobId:jobId},function(){
            $table.easyTable('search');
        });
    }
    /* 立即执行一次 */
    function runJob(obj) {
        let rows=$table.easyTable('selected');
        if(rows.length==0){
            jutils.warn("请选择数据行");
            return;
        }
        let jobId=rows[0].jobId;

        jutils.confirm('确认执行一次任务吗？',function(){
            jutils.ajaxGet('/monitor/job/run',{id:jobId},function(res){
                if(res.status){
                    $table.easyTable('search');
                }
            })
        })
    }

    /* 调度任务-停用 */
    function pauseJob(obj) {
        let rows=$table.easyTable('selected');
        if(rows.length==0){
            jutils.warn("请选择数据行");
            return;
        }
        let jobId=rows[0].jobId;
        jutils.confirm('确认停止任务吗？',function(){
             jutils.ajaxGet('/monitor/job/stop',{id:jobId},function(res){
                 if(res.status){
                     $table.easyTable('search');
                 }
             })
        })
    }

    /* 调度任务-启用 */
    function resumeJob(obj) {
        let rows=$table.easyTable('selected');
        if(rows.length==0){
            jutils.warn("请选择数据行");
            return;
        }
        let jobId=rows[0].jobId;
        jutils.confirm('确认启动任务吗？',function(){
            jutils.ajaxGet('/monitor/job/resume',{id:jobId},function(res){
                if(res.status){
                    $table.easyTable('search');
                }
            })
        })
    }

    //删除
    function removeAll(obj){
        let rows=$table.easyTable('selected');
        if(rows.length==0){
            jutils.warn("请选择数据行");
            return;
        }
        let jobId=rows[0].jobId;
        jutils.confirm('确认删除任务吗？',function(){
            jutils.ajaxGet('/monitor/job/removeAll',{id:jobId},function(res){
                if(res.status){
                    $table.easyTable('search');
                }
            })
        })
    }

    /* 调度日志查询 */
    function jobLog(obj) {
        let rows=$table.easyTable('selected');
        if(rows.length==0){
            jutils.warn("请选择数据行");
            return;
        }

        let jobId=rows[0].jobId;
        jutils.dialogTop('执行日志', '/monitor/job/jobLog', { id: jobId },null, function () {

        });
    }
</script>
</body>
</html>